// miniprogram/pages/home/home.js
Page({
    data: {
        showPopup: false, //首页检查弹窗
        announcementContent: `
        <div style="font-size: 28rpx; line-height: 1.8;"> 
            <p style="color: #333; margin-bottom: 24rpx;">🎉 欢迎使用全新版本！</p> 
            <p style="color: #666;">1. 全新「客户名片」功能上线，动态头像+数据可视化展示</p> 
            <p style="color: #666;">2. 智能到期提醒系统，支持短信模板自定义与自动识别客户经理</p> 
            <p style="color: #666;">3. 增强账户安全体系，密码采用盐值加密存储+全局Token自动注入</p> 
            <p style="color: #666;">4. 客户搜索功能升级，历史记录云端同步+安全脱敏显示</p>
            <p style="color: #666;">5. 输入法兼容性提升，精准修复键盘遮挡问题</p> 
            <p style="color: #666;">6. 日历组件深度集成，支持系统日历双写与日程提醒</p> 
            <p style="color: #666;">7. 新增吐槽圈社区，支持匿名发帖/点赞/图片轮播互动</p> 
            <p style="color: #666;">8. 图片转PDF工具上线，九宫格选图+原生API高效转换</p> 
            <p style="color: #666;">9. 全面重构UI界面，沉浸式导航栏+胶囊对齐交互设计</p> 
            <p style="color: #666;">10. 请求模块全面优化，错误自动重试+凭证智能管理</p> 
            <p style="color: #666;">11. 数据库性能飞跃，全新图床系统保障数据安全</p> 
            <p style="color: #666;">12. 短视频去水印工具发布，支持全部抖音视频解析</p> 
            <p style="color: #666;">13. 新增热更新机制，无需重新下载即时生效</p> 
            <p style="color: #666;">14. 新增每日业绩功能，修复n多BUG</p> 
            <p style="margin-top: 32rpx; color: #999;">更新时间：2025-06-18</p> 
        </div>
        `,
        popupAnimation: null,
        statusBarHeight: 0,
        navbarHeight: 0,
        menuButtonBottom: 0, // 新增胶囊按钮底部坐标
        isLoggedIn: false, // 登录状态
        userName: '', // 用户姓名
        capsulePosition: {}, // 胶囊位置信息
        windowInfo: wx.getWindowInfo(),
        scrollTop: 0,

        // 保持原有功能列表数据
        functionList: [{
                name: '上传文件',
                icon: '📤',
                new: true,
                url: '/pages/upload/index' // 文件上传页路径
            },
            {
                name: '到期提醒',
                icon: '⏰',
                hot: true,
                url: '/pages/reminder/reminder'
            },
            // 新增四个功能按钮
            {
                name: '我的卡片',
                icon: '📇',
                url: '/pages/cards/cards'
            },
            {
                name: '我的客户',
                icon: '👥',
                url: '/pages/clients/clients',
                new: true
            },
            {
                name: '重要提醒',
                icon: '⚠️',
                url: '/pages/important-alerts/alerts',
                new: true
            },
            // 新增智能排班配置 ➡️
            {
                name: '智能排班',
                icon: '📅', // 使用日历图标
                url: '/pages/schedule/schedule', // 建议的标准路径
                hot: false // 添加热门标记
            },
            {
                name: 'PDF 工坊',
                icon: '📑', // 使用多页文档Emoji
                hot: true, // 热门功能标识
                url: '/pages/pdftool/imgtopdf'
            },
            {
                name: '抖音去水印',
                icon: '/static/images/douyin.png', // 改为图片路径
                isImage: true, // 新增标识字段
                customClass: 'douyin-icon', // 添加专属类名
                url: '/pages/douyindown/douyindown',
                hot: true, // 热门功能标识
            },
            {
                name: '匿名吐槽',
                icon: '😶',
                url: '/pages/feedback/anonymous',
                hot: true // 会员专属 
            },
            {
                name: '每日业绩',
                icon: '🗒',
                new: false,
                url: '/pages/dailyperformance/dailyperformance',
                new: true
            },
            {
                name: '论坛入口',
                icon: '💬',
                url: '/pages/forum/forum',
                hot: false
            },
            {
                name: '知识交流',
                icon: '📚',
                url: '/pages/knowledge/share',
                new: false, // 新增标记
                hot: false, // 热门标记
                vip: false // 会员专属      
            }
        ],

        onPageScroll(e) {
            // 获取自定义 tabBar 实例
            const tabBar = this.getTabBar();
            if (tabBar) {
                tabBar.updateStyle(e.scrollTop);
            }
            //自定义搜索栏
            const newY = e.scrollTop > this.data.scrollTop ? -100 : 0
            this.setData({
                scrollTop: e.scrollTop,
                searchBarTranslateY: newY
            })
            // 通过滚动距离控制透明度
            const opacity = Math.max(0, 1 - e.scrollTop / 100)
            this.setData({
                searchBarOpacity: opacity
            })
        },

        // 新增实时数据
        realtimeData: {
            usage: 75,
            growth: 28
        }
    },

    onLoad() {
        // 获取胶囊位置
        const menuInfo = wx.getMenuButtonBoundingClientRect()
        this.setData({
            capsulePosition: {
                top: menuInfo.top,
                bottom: menuInfo.bottom,
                right: menuInfo.right,
                height: menuInfo.height
            }
        })
        const windowInfo = wx.getWindowInfo();
        const menuButtonInfo = wx.getMenuButtonBoundingClientRect();

        // 核心计算公式
        const navbarHeight = menuButtonInfo.bottom + 8; // 胶囊底部坐标 + 安全间距

        this.setData({
            statusBarHeight: windowInfo.statusBarHeight,
            navbarHeight: navbarHeight,
            menuButtonBottom: menuButtonInfo.bottom
        });

        console.log('[布局参数]', {
            状态栏高度: windowInfo.statusBarHeight,
            胶囊底部坐标: menuButtonInfo.bottom,
            最终导航高度: navbarHeight
        });
    },

    onShow() {
        // 同步检查登录状态
        const userInfo = wx.getStorageSync('userInfo')
        this.updateLoginStatus(userInfo)
        // 检查存储状态(弹窗功能)
        this.initPopupAnimation()
        const hasShown = wx.getStorageSync('POPUP_SHOWN')
        if (!hasShown) {
            this.showPopupWithAnimation()
        }
    },

    initPopupAnimation() {
        this.animation = wx.createAnimation({
            duration: 400,
            timingFunction: 'cubic-bezier(0.22, 0.61, 0.36, 1)'
        })
    },

    showPopupWithAnimation() {
        this.animation.translateY(0).opacity(1).step()
        this.setData({
            showPopup: true,
            popupAnimation: this.animation.export()
        })
        wx.setStorageSync('POPUP_SHOWN', true)
    },

    closePopup() {
        this.animation.translateY('120%').opacity(0).step()
        this.setData({
            popupAnimation: this.animation.export()
        })
        setTimeout(() => {
            this.setData({
                showPopup: false
            })
            // 添加关闭后回调（可选）
            this.triggerEvent('popup-close')
        }, 300)
    },

    // 简化事件处理
    noop(e) {
        // 兼容处理：小程序事件对象和DOM事件对象
        if (e && typeof e.stopPropagation === 'function') {
            e.stopPropagation();
        } else if (e && typeof e.stop === 'function') {
            e.stop(); // 小程序自定义事件停止传播
        } else {
            console.warn('无效的事件对象:', e);
        }
    },

    // 更新登录状态方法（可复用）
    updateLoginStatus(userInfo) {
        if (userInfo?.token) {
            this.setData({
                isLoggedIn: true,
                userName: userInfo.name
            })
        } else {
            this.setData({
                isLoggedIn: false,
                userName: ''
            })
        }
    },

    // 原有导航方法
    navigateTo(e) {
        const url = e.currentTarget.dataset.url
        wx.vibrateShort()
        wx.navigateTo({
            url: url,
            fail: () => {
                wx.showToast({
                    title: '✨ 神秘功能筹备中',
                    icon: 'none'
                })
            }
        })
    },

    // 新增方法
    navToSearch() {
        wx.navigateTo({
            url: '/pages/search/search'
        })
    },

    navToNotice() {
        // wx.navigateTo({
        //     url: '/pages/notifications/notifications'
        // })
        this.showPopupWithAnimation()
    },

    navToUser() {
        wx.navigateTo({
            url: '/pages/user/user',
            success: () => {
                wx.vibrateShort({
                    type: 'heavy'
                }) // 增强触感反馈
            },
            fail: (err) => {
                console.error('跳转失败详情:', err)
                wx.showToast({
                    title: '页面找不到了😢',
                    icon: 'none',
                    duration: 2000
                })
            }
        })
    },

    onShareAppMessage() {
        return {
            title: '发现一个超酷的工具箱！',
            imageUrl: '/images/share-cover.jpg'
        }
    }
})